home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / scripts / masok.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  10.5 KB  |  315 lines

  1. #
  2. resolution = 100;
  3.  
  4. Mesh= list( list( ctlpt( E3,  0.0 ,  0.668 , -2.8 ),
  5.               ctlpt( E3,  0.0 ,  0.668 , -2.8 ),
  6.               ctlpt( E3,  0.0 ,  0.669 , -2.8 ),
  7.               ctlpt( E3,  0.0 ,  0.669 , -2.8 ),
  8.               ctlpt( E3,  0.0 ,  0.668 , -2.8 ),
  9.               ctlpt( E3,  0.0 ,  0.668 , -2.8 )),
  10.         list( ctlpt( E3,  0.0  ,  0.666 , -0.83 ),
  11.           ctlpt( E3, -0.05 ,  0.666 , -0.83 ),
  12.           ctlpt( E3, -0.05 ,  0.670 , -0.83 ),
  13.           ctlpt( E3,  0.05 ,  0.670 , -0.83 ),
  14.           ctlpt( E3,  0.05 ,  0.666 , -0.83 ),
  15.           ctlpt( E3,  0.0  ,  0.666 , -0.83 ) ),
  16.         list( ctlpt( E3,  0.0 ,  0.64 , -0.82 ),
  17.           ctlpt( E3, -0.2 ,  0.64 , -0.82 ),
  18.           ctlpt( E3, -0.2 ,  0.68 , -0.82 ),
  19.           ctlpt( E3,  0.2 ,  0.68 , -0.82 ),
  20.           ctlpt( E3,  0.2 ,  0.64 , -0.82 ),
  21.           ctlpt( E3,  0.0 ,  0.64 , -0.82 ) ) ) ;
  22.                
  23. nos = sbspline(3, 2, Mesh,list(list(KV_OPEN),list(KV_OPEN)) );
  24.  
  25. Mesh =  list(
  26.         list( ctlpt( E3,  0.0 ,  0.64 , -0.82 ),
  27.           ctlpt( E3, -0.2 ,  0.64 , -0.82 ),
  28.           ctlpt( E3, -0.2 ,  0.68 , -0.82 ),
  29.           ctlpt( E3,  0.2 ,  0.68 , -0.82 ),
  30.           ctlpt( E3,  0.2 ,  0.64 , -0.82 ),
  31.           ctlpt( E3,  0.0 ,  0.64 , -0.82 ) ),
  32.         list( ctlpt( E3,  0.0 ,  0.4 , -0.8 ),
  33.           ctlpt( E3, -1.0 ,  0.4 , -0.8 ),
  34.           ctlpt( E3, -1.0 ,  0.8 , -0.8 ),
  35.           ctlpt( E3,  1.0 ,  0.8 , -0.8 ),
  36.           ctlpt( E3,  1.0 ,  0.4 , -0.8 ),
  37.           ctlpt( E3,  0.0 ,  0.4 , -0.8 ) ),
  38.         list( ctlpt( E3,  0.0 ,  0.2 , -0.5 ),
  39.           ctlpt( E3, -1.22,  0.2 , -0.5 ),
  40.           ctlpt( E3, -1.22,  1.1 , -0.5 ),
  41.           ctlpt( E3,  1.22,  1.1 , -0.5 ),
  42.           ctlpt( E3,  1.22,  0.2 , -0.5 ),
  43.           ctlpt( E3,  0.0 ,  0.2 , -0.5 ) ),
  44.  
  45.         list( ctlpt( E3,  0.0 ,  0.0 ,  0.5 ),
  46.           ctlpt( E3, -1.35,  0.0 ,  0.5 ),
  47.           ctlpt( E3, -1.35,  2.4 ,  0.5 ),
  48.           ctlpt( E3,  1.35,  2.4 ,  0.5 ),
  49.           ctlpt( E3,  1.35,  0.0 ,  0.5 ),
  50.           ctlpt( E3,  0.0 ,  0.0 ,  0.5 ) ),
  51.         list( ctlpt( E3,  0.0 ,  0.0 ,  1.55 ),
  52.           ctlpt( E3, -1.4 ,  0.0 ,  1.55 ),
  53.           ctlpt( E3, -1.4 ,  2.4 ,  1.55 ),
  54.           ctlpt( E3,  1.4 ,  2.4 ,  1.55 ),
  55.           ctlpt( E3,  1.4 ,  0.0 ,  1.55 ),
  56.           ctlpt( E3,  0.0 ,  0.0 ,  1.55 ) ),
  57.         list( ctlpt( E3,  0.0 ,  0.0 ,  1.55 ),
  58.           ctlpt( E3, -1.4 ,  0.0 ,  1.55 ),
  59.           ctlpt( E3, -1.4 ,  2.4 ,  1.55 ),
  60.           ctlpt( E3,  1.4 ,  2.4 ,  1.55 ),
  61.           ctlpt( E3,  1.4 ,  0.0 ,  1.55 ),
  62.           ctlpt( E3,  0.0 ,  0.0 ,  1.55 ) ),
  63.         list( ctlpt( E3,  0.0 ,  0.0 ,  2.55 ),
  64.           ctlpt( E3, -1.1 ,  0.0 ,  2.55 ),
  65.           ctlpt( E3, -1.1 ,  2.4 ,  2.55 ),
  66.           ctlpt( E3,  1.1 ,  2.4 ,  2.55 ),
  67.           ctlpt( E3,  1.1 ,  0.0 ,  2.55 ),
  68.           ctlpt( E3,  0.0 ,  0.0 ,  2.55 ) ),
  69.  
  70.  
  71.         list( ctlpt( E3,  0.0 ,  0.0 ,  6.0 ),
  72.           ctlpt( E3, -1.0 ,  0.0 ,  6.0 ),
  73.           ctlpt( E3, -1.0 ,  2.4 ,  6.0 ),
  74.           ctlpt( E3,  1.0 ,  2.4 ,  6.0 ),
  75.           ctlpt( E3,  1.0 ,  0.0 ,  6.0 ),
  76.           ctlpt( E3,  0.0 ,  0.0 ,  6.0 ) ),
  77.         list( ctlpt( E3,  0.0 ,  0.5 ,  6.6 ),
  78.           ctlpt( E3, -1.0 ,  0.5 ,  6.6 ),
  79.           ctlpt( E3, -1.0 ,  2.0 ,  6.6 ),
  80.           ctlpt( E3,  1.0 ,  2.0 ,  6.6 ),
  81.           ctlpt( E3,  1.0 ,  0.5 ,  6.6 ),
  82.           ctlpt( E3,  0.0 ,  0.5 ,  6.6 ) ),
  83.         list( ctlpt( E3,  0.0 ,  1.0 ,  6.8 ),
  84.           ctlpt( E3, -0.7 ,  1.0 ,  6.8 ),
  85.           ctlpt( E3, -0.7 ,  2.0 ,  6.8 ),
  86.           ctlpt( E3,  0.7 ,  2.0 ,  6.8 ),
  87.           ctlpt( E3,  0.7 ,  1.0 ,  6.8 ),
  88.           ctlpt( E3,  0.0 ,  1.0 ,  6.8 ) ),
  89.  
  90.         list( ctlpt( E3,  0.0 ,  1.5 ,  9.0 ),
  91.           ctlpt( E3, -0.2 ,  1.5 ,  9.0 ),
  92.           ctlpt( E3, -0.2 ,  2.0 ,  9.0 ),
  93.           ctlpt( E3,  0.2 ,  2.0 ,  9.0 ),
  94.           ctlpt( E3,  0.2 ,  1.5 ,  9.0 ),
  95.           ctlpt( E3,  0.0 ,  1.5 ,  9.0 ) ),
  96.         list( ctlpt( E3,  0.0 ,  1.9 ,  9.5 ),
  97.           ctlpt( E3, -0.2 ,  1.9 ,  9.5 ),
  98.           ctlpt( E3, -0.2 ,  2.0 ,  9.5 ),
  99.           ctlpt( E3,  0.2 ,  2.0 ,  9.5 ),
  100.           ctlpt( E3,  0.2 ,  1.9 ,  9.5 ),
  101.           ctlpt( E3,  0.0 ,  1.9 ,  9.5 ) )  );
  102.  
  103. body = sbspline(4 , 3 ,Mesh , list (list(KV_OPEN),
  104.        list(0, 0, 0, 1, 1.3, 1.5, 1.8, 2.2, 3.2, 3.9, 4.6, 5.3, 6, 6, 6)));
  105. #body = body*scale( vector(1.0, 1.22, 1.0));
  106.  
  107. Mesh = list(
  108. #        list( ctlpt( E3,  -1.111,  2.0 ,  8.85 ),
  109. #          ctlpt( E3,  -1.111,  2.0 ,  8.84 ),
  110. #          ctlpt( E3,  -1.111,  2.1 ,  8.84 ),
  111. #          ctlpt( E3,  -1.111,  2.1 ,  8.86 ),
  112. #          ctlpt( E3,  -1.111,  2.0 ,  8.86 ),
  113. #              ctlpt( E3,  -1.111,  2.0 ,  8.85) ),
  114. #
  115.          list( ctlpt( E3,  -1.11,  1.0 ,  8.85 ),
  116.           ctlpt( E3,  -1.11,  1.0 ,  8.5 ),
  117.           ctlpt( E3,  -1.11,  2.5 ,  8.5 ),
  118.           ctlpt( E3,  -1.11,  2.5 ,  10.3 ),
  119.           ctlpt( E3,  -1.11,  1.0 ,  10.3 ),
  120.               ctlpt( E3,  -1.11,  1.0 ,  8.85) ),
  121.  
  122.        list ( ctlpt( E3,  -1.1 ,  1.0 ,  8.85 ),
  123.           ctlpt( E3,  -1.1 ,  1.0 ,  8.5 ),
  124.           ctlpt( E3,  -1.1 ,  2.5 ,  8.5 ),
  125.           ctlpt( E3,  -1.1 ,  2.5 ,  10.3 ),
  126.           ctlpt( E3,  -1.1 ,  1.0 ,  10.3 ),
  127.               ctlpt( E3,  -1.1 ,  1.0 ,  8.85) ),
  128.  
  129.         list( ctlpt( E3,  -1.08 ,  1.9 ,  8.85 ),
  130.           ctlpt( E3,  -1.08 ,  1.9 ,  8.7 ),
  131.           ctlpt( E3,  -1.08 ,  2.0 ,  8.7 ),
  132.           ctlpt( E3,  -1.08 ,  2.0 ,  9.5),
  133.               ctlpt( E3,  -1.08 ,  1.9 ,  9.5 ),
  134.               ctlpt( E3,  -1.08 ,  1.9 ,  8.85) ),
  135.   
  136.         list( ctlpt( E3,  -1.0 ,  1.9 ,  8.85 ),
  137.           ctlpt( E3,  -1.0 ,  1.9 ,  8.7 ),
  138.           ctlpt( E3,  -1.0 ,  2.0 ,  8.7 ),
  139.           ctlpt( E3,  -1.0 ,  2.0 ,  9.5 ),
  140.           ctlpt( E3,  -1.0 ,  1.9 ,  9.5 ),
  141.               ctlpt( E3,  -1.0 ,  1.9 ,  8.85) ),
  142.  
  143.         list( ctlpt( E3,  0.0 ,  1.9 ,  8.85 ),
  144.           ctlpt( E3,  0.0 ,  1.9 ,  8.7 ),
  145.           ctlpt( E3,  0.0 ,  2.0 ,  8.7 ),
  146.           ctlpt( E3,  0.0 ,  2.0 ,  9.5 ),
  147.           ctlpt( E3,  0.0 ,  1.9 ,  9.5 ),
  148.               ctlpt( E3,  0.0 ,  1.9 ,  8.85) ),
  149.  
  150.         list( ctlpt( E3,  1.0 ,  1.9 ,  8.85 ),
  151.           ctlpt( E3,  1.0 ,  1.9 ,  8.7 ),
  152.           ctlpt( E3,  1.0 ,  2.0 ,  8.7 ),
  153.           ctlpt( E3,  1.0 ,  2.0 ,  9.5 ),
  154.           ctlpt( E3,  1.0 ,  1.9 ,  9.5 ),
  155.               ctlpt( E3,  1.0 ,  1.9 ,  8.85 )  ), 
  156.  
  157.         list( ctlpt( E3,  1.08 ,  1.9 ,  8.85 ),
  158.           ctlpt( E3,  1.08 ,  1.9 ,  8.7 ),
  159.           ctlpt( E3,  1.08 ,  2.0 ,  8.7 ),
  160.           ctlpt( E3,  1.08 ,  2.0 ,  9.5 ),
  161.           ctlpt( E3,  1.08 ,  1.9 ,  9.5 ),
  162.               ctlpt( E3,  1.08 ,  1.9 ,  8.85) ),
  163.  
  164.        list ( ctlpt( E3,  1.1 ,  1.0 ,  8.85 ),
  165.           ctlpt( E3,  1.1 ,  1.0 ,  8.5 ),
  166.           ctlpt( E3,  1.1 ,  2.5 ,  8.5 ),
  167.           ctlpt( E3,  1.1 ,  2.5 ,  10.3 ),
  168.           ctlpt( E3,  1.1 ,  1.0 ,  10.3 ),
  169.               ctlpt( E3,  1.1 ,  1.0 ,  8.85) ),
  170.  
  171.         list( ctlpt( E3,  1.11 , 1.0 ,  8.85 ),
  172.           ctlpt( E3,  1.11,  1.0 ,  8.5 ),
  173.           ctlpt( E3,  1.11,  2.5 ,  8.5 ),
  174.           ctlpt( E3,  1.11,  2.5 ,  10.3 ),
  175.           ctlpt( E3,  1.11,  1.0 ,  10.3 ),
  176.               ctlpt( E3,  1.11,  1.0 ,  8.85) ),
  177.  
  178.         list( ctlpt( E3,  1.111,  1.5 ,  8.85), 
  179.               ctlpt( E3,  1.111,  1.5 ,  8.85), 
  180.               ctlpt( E3,  1.111,  1.5 ,  8.85), 
  181.               ctlpt( E3,  1.111,  1.5 ,  8.85), 
  182.               ctlpt( E3,  1.111,  1.5 ,  8.85), 
  183.               ctlpt( E3,  1.111,  1.5 ,  8.85) ) );
  184.  
  185. hvost = sbspline(4,2,Mesh,list (list(KV_OPEN),list(KV_OPEN)));
  186. hvost = hvost * trans( vector( 0.0, -0.34, -1.0));
  187.  
  188. hvost = hvost*scale( vector( 1.5, 1.5, 1.5 ));
  189.  
  190. Mesh = list( 
  191.         list( ctlpt( E3,  1.0 ,  1.7 ,  1.35 ),
  192.           ctlpt( E3,  1.0 ,  1.7 ,  1.0 ),
  193.           ctlpt( E3,  1.0 ,  1.9 ,  1.0 ),
  194.           ctlpt( E3,  1.0 ,  1.9 ,  2.8 ),
  195.           ctlpt( E3,  1.0 ,  1.7 ,  2.8 ),
  196.               ctlpt( E3,  1.0 ,  1.7 ,  1.35) ),
  197.         list( ctlpt( E3,  2.0 ,  1.6 ,  0.85 ),
  198.           ctlpt( E3,  2.0 ,  1.6 ,  0.5 ),
  199.           ctlpt( E3,  2.0 ,  2.0 ,  0.5 ),
  200.           ctlpt( E3,  2.0 ,  2.0 ,  3.0 ),
  201.           ctlpt( E3,  2.0 ,  1.6 ,  3.0 ),
  202.               ctlpt( E3,  2.0 ,  1.6 ,  0.85) ),
  203.         list( ctlpt( E3,  4.0 ,  1.6 ,  0.85 ),
  204.           ctlpt( E3,  4.0 ,  1.6 ,  0.5 ),
  205.           ctlpt( E3,  4.0 ,  2.0 ,  0.5 ),
  206.           ctlpt( E3,  4.0 ,  2.0 ,  3.0 ),
  207.           ctlpt( E3,  4.0 ,  1.6 ,  3.0 ),
  208.               ctlpt( E3,  4.0 ,  1.6 ,  0.85) ),
  209.         list( ctlpt( E3,  5.0 ,  1.7 ,  1.35 ),
  210.           ctlpt( E3,  5.0 ,  1.7 ,  1.0 ),
  211.           ctlpt( E3,  5.0 ,  1.9 ,  1.0 ),
  212.           ctlpt( E3,  5.0 ,  1.9 ,  2.8 ),
  213.           ctlpt( E3,  5.0 ,  1.7 ,  2.8 ),
  214.               ctlpt( E3,  5.0 ,  1.7 ,  1.35) ) );
  215.  
  216. krylo = sbspline(4,3,Mesh,list (list(KV_OPEN),list(KV_OPEN)));
  217. krylo = krylo*trans( vector(  -3.0, -0.33, 3.05 ) );
  218. krylo = krylo*scale( vector(  1.42,  0.5, 0.8 ) );
  219.    
  220.  body = list( nos, body );
  221.  body = body * scale( vector( 1.23, 1.22, 1.3) );
  222.  masok = list(body , krylo, hvost) ;
  223. # masok = masok * scale( vector( 0.23, 0.23, 0.17) );
  224.  
  225. color( masok, green);
  226. #attrib( masok, "resolution",100);
  227. attrib( masok, "texture","wood");
  228. attrib( masok, "reflect",0.6);
  229. attrib( masok, "rgb", "10,200,80");
  230.  
  231.  
  232. #body1=body + krylo1 ;          
  233. #
  234. # BOMBA
  235. #
  236. v0 = vector(  0.0, -1.5,  9.0 );
  237. v1 = vector(  0.0,  1.5,  9.0 );
  238. v2 = vector(  0.0,  1.5, 12.0 );
  239. v3 = vector(  0.0, -1.5, 12.0 );
  240. h1 = poly( list( v0, v1, v2 ,v3 ), false );
  241. h2 = h1*rotz(90);
  242.  
  243. m = list ( 
  244. ctlpt(E3, 0.0, 0.0 , 0.0 ),
  245. ctlpt(E3, 0.0, 2.0 , 1.0 ),
  246. ctlpt(E3, 0.0, 2.0 , 3.0 ),
  247. ctlpt(E3, 0.0, 1.0 , 5.0 ),
  248. ctlpt(E3, 0.0, 1.0 , 5.0 ),
  249. ctlpt(E3, 0.0, 1.0 , 8.0 ) );
  250.  
  251. b = cbezier(m);
  252. b=surfrev(b);
  253. b = b*scale( vector(0.7 , 0.7 , 1.5 ) );
  254. bomba = list(b , h1 , h2);
  255.  
  256. bomba=bomba*scale( vector( 0.15 , 0.15 , 0.15 ) );
  257. bomba1=bomba*trans( vector( 2.2 ,  0.4,   3.0) );
  258. bomba2=bomba1*trans( vector(0.6 ,  0.0 ,  0.1 ) );
  259.  
  260. bomba3=bomba*trans( vector(-2.1 ,  0.4 ,  3.0 ) );
  261. bomba4=bomba3*trans( vector(-0.6 ,  0.0 ,  0.1 ) );
  262.  
  263. bombs = list(bomba1,bomba2,bomba3,bomba4);
  264. color( bombs, white );
  265. attrib( bombs, "texture", "marble" );
  266. attrib( bombs, "reflect", 0.6 );
  267.  
  268.  
  269. masok = list( masok, bombs);
  270.  
  271. #
  272. v1 = vector(  0.0,  0.0, 0.0 );
  273. v2 = vector(  0.0,  0.0, 7.0 );
  274. v3 = vector(  0.1,  0.1, 7.0);
  275. prop = poly( list( v1, v2 ,v3 ), false );
  276.  
  277. prop=prop*roty(30);
  278. prop1=prop;
  279. prop2=prop1*roty(180);
  280.  
  281. prop=prop*trans( vector( 0.0, 0.4, 0.0));
  282. prop3=prop*roty(90);
  283. prop4=prop3*roty(180);
  284.  
  285. v1 = vector(  0.0,  -0.3, 0.0 );
  286. v2 = vector(  0.0,   0.5, 0.0 );
  287. palka=poly( list(v1, v2), true);
  288. vint=list( prop1 , prop2 , prop3 , prop4, palka );
  289. vint=vint*trans( vector( 0.0 , 2.9 , 4.0) );
  290.  
  291. color( vint, white );
  292. attrib( vint, "texture", "marble" );
  293. attrib( vint, "reflect", 0.6 );
  294. attrib( vint, "rgb","100,100,100");
  295.  
  296.  
  297. masok = list( masok, vint);
  298.  
  299. #
  300. # View it all and dump it.
  301. #
  302. #
  303. # Go to single buffer since this one is slow.
  304. #
  305. viewstate("DblBuffer");
  306.  
  307. save_mat = view_mat;
  308. view_mat = view_mat * scale( vector( 0.1, 0.1, 0.1) );
  309. masok = masok * scale( vector( 0.2, 0.2, 0.2) );
  310. #masok = masok * rotx(90);
  311. interact(masok);
  312. save("masok",masok);
  313. view_mat = save_mat;
  314.